home *** CD-ROM | disk | FTP | other *** search
/ Animation How-To / Animation How-to CD.iso / PLY / CHAPTER2 / DRIP / ANGRY.PI < prev    next >
Text File  |  1994-01-01  |  5KB  |  203 lines

  1. //
  2. // ANGRY.PI  Angry Dripping Animation
  3. //           
  4. // Polyray input file - Jeff Bowermaster
  5.  
  6. // Define the range of the animation
  7. start_frame 0
  8. end_frame   89
  9. total_frames 90
  10. define shift frame/30
  11.  
  12. outfile angr
  13.  
  14. define pi 3.14159
  15. define rad pi/180
  16.  
  17. // Set up the camera
  18. viewpoint {
  19.    from <10,10,-10>
  20. //   from rotate(<8,8,-8>,<0,frame,0>)+<0,2*sin(frame*rad),0>
  21.    at <0,0,0>
  22.    up <0,1,0>
  23.    angle 45
  24.    resolution 320,240
  25.    aspect 1.33
  26.    }
  27.  
  28. // Set up background color & lights
  29. background skyblue
  30.  
  31. define dim <0.9,0.9,0.9>
  32.  
  33. spot_light dim,<10,20,-10>,<0,0,0>, 3, 15, 30
  34.  
  35. include "\ply\colors.inc"
  36.  
  37. define blue_glass
  38. texture {
  39.    surface {
  40.       ambient yellow, 0.1           // 0.2
  41.       diffuse midnightblue, 0.2     //0.6
  42.       specular 0.9                  //0.6
  43.       reflection white, 0.05        //0.1
  44.       microfacet Phong 2
  45.       transmission white, 0.98, 1.5  //0.95
  46.       }
  47.    }
  48.  
  49. define annoying_marble1
  50. texture {
  51.    noise surface {
  52.       color white
  53.       position_fn 1
  54.       lookup_fn 1
  55.       octaves 3
  56.       turbulence 3
  57.       ambient 0.3
  58.       diffuse 0.8
  59.       specular 0.3
  60.       microfacet Reitz 5
  61.       color_map(
  62.          [0.0, 0.8, Yellow, Yellow*0.6]
  63.          [0.8, 1.0, Yellow*0.6,Navyblue])
  64.       }
  65.    translate <shift,0,-shift>
  66.    }
  67.                   
  68. define annoying_marble2
  69. texture {
  70.    noise surface {
  71.       color white
  72.       position_fn 1
  73.       lookup_fn 1
  74.       octaves 3
  75.       turbulence 3
  76.       ambient 0.3
  77.       diffuse 0.8
  78.       specular 0.3
  79.       microfacet Reitz 5
  80.       color_map(
  81.          [0.0, 0.8, Navyblue, Navyblue*0.6]
  82.          [0.8, 1.0, Navyblue*0.6,Yellow])
  83.       }
  84.    translate <shift,0,-shift>
  85.    }
  86.  
  87. // Create a floor
  88. define ground1
  89. object {
  90.    polynomial y + 0.01
  91.    texture { checker annoying_marble1, annoying_marble2}
  92.    scale <6, 6, 6>
  93.    translate <0,-10,0>
  94.    }
  95.  
  96. define ground2
  97. object {
  98.    polynomial y + 0.01
  99.    texture { checker annoying_marble2, annoying_marble1}
  100.    scale <6, 6, 6>
  101.    translate <0,-10,0>
  102.    }
  103.  
  104. // A blob explodes along the xyz axes
  105.  
  106. define framer frame/30
  107.  
  108. define dripper
  109. object {
  110.    blob 0.10:
  111.       0.1, 3.0, < 1, 1, 0>*framer,
  112.       0.1, 3.0, < 0, 1, 1>*framer,
  113.       0.1, 3.0, < 1, 0, 1>*framer,
  114.  
  115.       0.1, 3.0, <-1,-1, 0>*framer,
  116.       0.1, 3.0, < 0,-1,-1>*framer,
  117.       0.1, 3.0, <-1, 0,-1>*framer,
  118.  
  119.       0.1, 3.0, <-1, 1, 0>*framer,
  120.       0.1, 3.0, < 0,-1, 1>*framer,
  121.       0.1, 3.0, <-1, 0, 1>*framer,
  122.  
  123.       0.1, 3.0, < 1,-1, 0>*framer,
  124.       0.1, 3.0, < 0, 1,-1>*framer,
  125.       0.1, 3.0, < 1, 0,-1>*framer,
  126.  
  127.       0.1, 3.0, < 1, 1, 1>*framer,
  128.       0.1, 3.0, <-1,-1,-1>*framer,
  129.       0.1, 3.0, <-1, 1, 1>*framer,
  130.       0.1, 3.0, < 1,-1, 1>*framer,
  131.       0.1, 3.0, < 1, 1,-1>*framer,
  132.       0.1, 3.0, <-1, 1,-1>*framer,
  133.       0.1, 3.0, < 1,-1,-1>*framer,
  134.       0.1, 3.0, <-1,-1, 1>*framer,
  135.  
  136.       0.1, 3.0, < 2, 2, 0>*framer,
  137.       0.1, 3.0, < 0, 2, 2>*framer,
  138.       0.1, 3.0, < 2, 0, 2>*framer,
  139.  
  140.       0.1, 3.0, <-2,-2, 0>*framer,
  141.       0.1, 3.0, < 0,-2,-2>*framer,
  142.       0.1, 3.0, <-2, 0,-2>*framer,
  143.  
  144.       0.1, 3.0, <-2, 2, 0>*framer,
  145.       0.1, 3.0, < 0,-2, 2>*framer,
  146.       0.1, 3.0, <-2, 0, 2>*framer,
  147.  
  148.       0.1, 3.0, < 2,-2, 0>*framer,
  149.       0.1, 3.0, < 0, 2,-2>*framer,
  150.       0.1, 3.0, < 2, 0,-2>*framer,
  151.  
  152.       0.1, 3.0, < 2, 2, 2>*framer,
  153.       0.1, 3.0, <-2,-2,-2>*framer,
  154.       0.1, 3.0, <-2, 2, 2>*framer,
  155.       0.1, 3.0, < 2,-2, 2>*framer,
  156.       0.1, 3.0, < 2, 2,-2>*framer,
  157.       0.1, 3.0, <-2, 2,-2>*framer,
  158.       0.1, 3.0, < 2,-2,-2>*framer,
  159.       0.1, 3.0, <-2,-2, 2>*framer,
  160.  
  161.       0.1, 3.0, < 3, 3, 0>*framer,
  162.       0.1, 3.0, < 0, 3, 3>*framer,
  163.       0.1, 3.0, < 3, 0, 3>*framer,
  164.  
  165.       0.1, 3.0, <-3,-3, 0>*framer,
  166.       0.1, 3.0, < 0,-3,-3>*framer,
  167.       0.1, 3.0, <-3, 0,-3>*framer,
  168.  
  169.       0.1, 3.0, <-3, 3, 0>*framer,
  170.       0.1, 3.0, < 0,-3, 3>*framer,
  171.       0.1, 3.0, <-3, 0, 3>*framer,
  172.  
  173.       0.1, 3.0, < 3,-3, 0>*framer,
  174.       0.1, 3.0, < 0, 3,-3>*framer,
  175.       0.1, 3.0, < 3, 0,-3>*framer,
  176.  
  177.       0.1, 3.0, < 3, 3, 3>*framer,
  178.       0.1, 3.0, <-3,-3,-3>*framer,
  179.       0.1, 3.0, <-3, 3, 3>*framer,
  180.       0.1, 3.0, < 3,-3, 3>*framer,
  181.       0.1, 3.0, < 3, 3,-3>*framer,
  182.       0.1, 3.0, <-3, 3,-3>*framer,
  183.       0.1, 3.0, < 3,-3,-3>*framer,
  184.       0.1, 3.0, <-3,-3, 3>*framer,
  185.  
  186.       0.5, 3.0, <0,0,0>
  187.    root_solver Ferrari
  188.    u_steps 20
  189.    v_steps 20
  190.    blue_glass
  191.    }
  192.  
  193. dripper { rotate <0,frame,0> }
  194.  
  195. define shift frame/30
  196.  
  197. if (fmod(frame,2)==0)
  198.    ground1 { translate <-2*shift,0,2*shift> }
  199. else
  200.    ground2 { translate <-2*shift,0,2*shift> }
  201.  
  202.  
  203.